[C] Apaga linha em um Arquivo
Publicado por Enzo de Brito Ferber 06/03/2006
[ Hits: 17.974 ]
Homepage: http://www.maximasonorizacao.com.br
Este script apaga a linha "dita" por um
usuário de um arquivo "dito" pelo mesmo.
Código de minha autoria bem comentado
e simples.... ajuda bastante a entender
manipulação de arquivos, aloção
dinamina de memoria, e maniputação de
strings....
/********************************************************************************************* Programa: apaga.c Autor: Enzo Ferber 'Slackware_10' Propósito: Apaga linha definida por usuário em um arquivo **********************************************************************************************/ #include <stdio.h> #include <stdlib.h> int abreArquivo(char arquivo[]){ FILE *arqEntrada; FILE *arqSaida; int line = 0; int linha = 1; int i; char textoArquivo[100]; char *output; output = (char *)malloc((strlen(arquivo)+strlen(".editado")) * sizeof(char)); strcat(output, arquivo); strcat(output, ".editado"); if((arqEntrada = fopen(arquivo, "r")) == 0){ //testa se o arquivo pode ser aberto printf("Impossivel abrir arquivo...\n"); //informa o erro exit(1); //finaliza execução } if((arqSaida = fopen(output, "w")) == 0){ //testa se o arquivo pode ser aberto printf("Impossivel abrir arquivo...\n"); //informa o erro exit(1); //finaliza execução } printf("Digite a linha a ser apagada no arquivo: "); //pede a linha scanf("%d", &line); //le a linha e armazena na variável 'line' rewind(arqEntrada); //certifica de que o cursor esta no primeiro caractere do arquivo for(i = 0; !feof(arqEntrada);i++){ //incrementa 'i' enquando não for fim de arquivo memset(textoArquivo, '{FONTE}', 100); //inicializa e/ou limpa string 'textoArquivo' fgets(textoArquivo, 101, arqEntrada); //pega uma string de 100 caracteres if(linha == line){ //se a linha for a escolhida fputc('\n', arqSaida); //troca a linha que o usuario quer por nova linha linha = linha + 1; //incrementa o contador de linhas continue; //volta ao inicio do loop sem executar o resto } linha = linha + 1; //incrementa o contador de linas fputs(textoArquivo, arqSaida); //coloca a string 'textoArquivo' no arquivo encoded.txt } printf("O arquivo output %c: %s\n",233, output); free(output); //desaloca espaço alocado para string contendo novo do novo arquivo fclose(arqEntrada); //fecha a stream 'arqEntrada' fclose(arqSaida); //fecha a stream 'arqSaida' } int main(void){ //rotina principal do programa char arquivo[100]; printf("Digite o caminho completo do arquivo: "); __fpurge(stdin); //limpa buffer de entrada scanf("%[^\n]", arquivo); abreArquivo(arquivo); }
Programinha que busca arquivos
Customizar a Instalação do Linux Debian com Preseed
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Bora fazer um teste? mbti (10)
Instalação de Certificados .Cer no Ubuntu 24.04 (0)
O que você está ouvindo agora? [2] (193)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (8)